home *** CD-ROM | disk | FTP | other *** search
- === Version Information ===
-
- Drangband stuff
- ---------------
-
- This file was last updated for DrAngband 2.9.9.
-
- DrAngband is a variant of the popular, excellent, addictive and beautifully
- cleanly coded rogulike, Angband. Visit the DrAngband homepage for more
- recent versions ("http://itctel.com/~apwhite/andrew.html"). Email me
- (Dr. Andrew White) with bug reports (apwhite@itctel.com).
- DrAngband was originally written by Aaron Mandelbaum, whose last version
- was 2.1. Tom Morton assumed the role as maintainer in 1999. Dr Andrew White
- took over in 2000.
-
- Angband History
- ---------------
-
- Make sure to read the newsgroup ("rec.games.roguelike.angband"), and to visit
- the Official Angband Home Page ("http://thangorodrim.angband.org") for the
- most up to date information about Angband.
-
- Angband 2.8.3 has an incredibly complex history, and is the result of a
- lot of work by a lot of people, all of whom have contributed their time
- and energy for free, being rewarded only by the pleasure of keeping alive
- one of the best freeware games available anywhere (the best - TM).
-
- The version control files, if they existed, would span more than ten years
- time, and more than five different primary developers. Without such files,
- we must rely on simpler methods, such as change logs, source file diffs, and
- word of mouth. Some of this information is summarized in this file.
-
- Please be sure to read the copyright information at the end of this file.
-
- === Brief Version History ===
-
- First came "VMS Moria", by Robert Alan Koeneke (1985).
-
- Then came "Umoria" (Unix Moria), by James E. Wilson (1989).
-
- Details about the history of the various flavors of "moria", the direct
- ancestor to Angband, can be found elsewhere, and a note from Robert Alan
- Koeneke is included in this file. Note that "moria" has been ported to
- a variety of platforms, and has its own newsgroup, and its own fans.
-
- In 1990, Alex Cutler and Andy Astrand, with the help of other students
- at the University of Warwick, created Angband 1.0, based on the existing
- code for Umoria 5.2.1. They wanted to expand the game, keeping or even
- strengthening the grounding in Tolkien lore, while adding more monsters
- and items, including unique monsters and artifact items, plus activation,
- pseudo-sensing, level feelings, and special dungeon rooms.
-
- Over time, Sean Marsh, Geoff Hill, Charles Teague, and others, worked on
- the source, releasing a copy known as "Angband 2.4.frog_knows" at some
- point, which ran only on Unix systems, but which was ported by various
- people to various other systems. One of the most significant ports was
- the "PC Angband 1.4" port, for old DOS machines, which added color and
- various other significant changes, only some of which ever made it back
- into the official source.
-
- Then Charles Swiger (cs4w+@andrew.cmu.edu) took over, sometime in late
- 1993, cleaning up the code, fixing a lot of bugs, and bringing together
- various patches from various people, resulting in several versions of
- Angband, starting with Angband 2.5.1 (?), and leading up to the release
- of Angband 2.6.1 (and Angband 2.6.2) in late 1994. Some of the changes
- during this period were based on suggestions from the "net", and from
- various related games, including "UMoria 5.5", "PC Angband 1.4", and
- "FAngband".
-
- Angband 2.6.1 was primarily targetted towards Unix/NeXT machines, and
- it required the use of the low level "curses" commands for all screen
- manipulation and keypress interaction. Each release had to be ported
- from scratch to any new platforms, normally by creating visual display
- code that acted as a "curses" emulator. One such port was "Macintosh
- Angband 2.6.1", by Keith Randall, which added support for color, and
- which formed the basis for the first release of Angband 2.7.0.
-
- During the last half of 1994, I (Ben Harrison) had been playing with
- the Angband source, primarily to investigate the possibility of making
- some kind of automatic player for Angband, like the old "rogue-o-matic"
- program for the game "rogue". The difficulty of compiling a version
- for the Macintosh, and the complexity of the code, prevented this, and
- so I began cleaning up the code in various ways for my own personal use.
-
- In late 1994, Charles Swiger announced that he was starting a real job
- and would no longer be able to be the Angband maintainer. This induced
- some amount of uproar in the Angband community (as represented by the
- Angband newsgroup), with various people attempting to form "committees"
- to take over the maintenance of Angband. Since committees have never
- given us anything but trouble (think "COBOL"), there was very little
- resistance when, on the first day of 1995, I made my code available,
- calling it "Angband 2.7.0", and by default, taking over as the new
- maintainer of Angband. Or, at least, that is how I remember it...
-
- Angband 2.7.0 was a very clean (but very buggy) rewrite that, among other
- things, allowed extremely simple porting to multiple platforms, starting
- with Unix and Macintosh, and by the time most of the bugs were cleaned up,
- in Angband 2.7.2, including X11, and various IBM machines. Angband 2.7.4
- was released to the "ftp.cis.ksu.edu" site, and quickly gained acceptance,
- perhaps helped by the OS2 and Windows and Amiga and Linux ports. Angband
- 2.7.5 and 2.7.6 added important capabilities such as macros and user pref
- files, and continued to clean up the source. Angband 2.7.8 was released
- to the major ftp archives as the first "stable" version in a year or so,
- with new "help files" and "spoiler files" for the "online help", plus a
- variety of minor tweaks and some new features.
-
- After Angband 2.7.8 was released, I created a web site to keep track of
- all the changes made in each version (though a few may have been missed),
- and acquired the use of a new develoepement ftp server to supplement the
- official "mirror" server. This web site is now permanently located at
- the Official Angband Home Page (http://www.phial.com). Unfortunately,
- the next six versions were numbered Angband 2.7.9v1 to Angband 2.7.9v6,
- but really each were rather major updates. Angband 2.8.0 and 2.8.1 were
- released using a more normal version scheme. Angband 2.8.2 and 2.8.3 add
- a few random features, clean up some code, and provide graphics support
- and such for a few more platforms.
-
- The Official Angband Home Page ("http://www.phial.com/angband/") serves
- not only as the most up to date description of Angband, but also lists
- changes made between versions, and changes planned for upcoming versions,
- and lists various email addresses and web sites related to Angband.
-
-
- === Some of the changes between Angband 2.6.1 and Angband 2.7.8 ===
-
- It is very hard to pin down, along the way from 2.6.2 to 2.7.8, exactly
- what changes were made, and exactly when they were made. Most releases
- involved so many changes from the previous release as to make "diff files"
- not very useful, since often the diff files are as long as the code itself.
- Most of the changes, with the notable exception of the creation of some of
- the new "main-xxx.c" files for the various new platforms, and a few other
- minor exceptions generally noted directly in comments in the source, were
- written by myself, either spontaneously, or, more commonly, as the result
- of a suggestion or comment by an Angband player.
-
- The most important modification was a massive "code level cleanup" that made
- all of my other modifications much simpler and safer. This cleanup was so
- massive that in many places the code is no longer recognizable, for example,
- via "diff -r", often because it was rewritten from scratch.
-
- The second most important modification was the design of a generic "z-term.c"
- package, which allows Angband to be ported to a new machine with as few as 50
- lines of code. Angband 2.7.8 thus runs without modification on many machines,
- including Macintosh, PowerMac, Unix/X11, Unix/Curses, Amiga, Windows, OS2-386,
- DOS-386, and even DOS-286.
-
- It would be difficult to list all of the changes between Angband 2.6.1 and
- Angband 2.7.8, because many of them were made in passing during the massive
- code level cleanup. Many of the changes are invisible to the user, but still
- provide increased simplicity and efficiency, and decreased code size, or make
- other more visable changes possible. For example, the new "project()" code
- that handles all bolts, beams, and balls, the new "update_view()" code that
- simplifies line of sight computation, or the new "generate()" code that builds
- new levels in the dungeon. Many changes have been made to increase efficiency,
- including the new "process_monsters()" and "update_monsters()" functions, and
- the new "objdes()" and "lite_spot()" routines. The generic "z-term.c" package
- yielded efficient screen updates, and enabled the efficient use of "color".
-
- But anyway, here are a few things that come to mind, in no particular order,
- and with very little time or effort. Somehow I managed to put off updating
- this file to the very end, and it will just have to do for now. The recent
- changes (and bug fixes) can be found at the Official Angband Home Page.
-
- color
- macros
- keymaps
- user pref files
- generic feature array, with template file
- generic object array, with template file
- generic artifact array, with template file
- generic ego-item array, with template file
- generic monster array, with template fils
- generic vault array, with template file
- binary image files for the template files
- special stat effect tables
- a special table of spells
- a special table of options
- inventory tagging
- inventory restrictions
- using objects off the floor
- various new runtime options
- the new "destroy" command
- the new "examine" command
- the new "note" command
- the new "dump screen" command
- the new "load screen" command
- the new "un-inscribe" command
- the new "change visuals" command
- the new "change colors" command
- the new "change macros" command
- the new "save game" command
- the new "fire" vs "throw" commands
- rearranged equipment slots
- a standard bow slot
- an extra inventory slot
- an underlying keyset
- refueling torches
- better monster memory
- nicer targetting mode
- object stacking
- the recall window
- the choice window
- the mirror window
- new high score code
- special lighting effects
- intelligent monsters
- new monster flags
- text formatting code
- much cleaner store code
- generic spell projections
- scrolls of *identify*
- maximise mode
- preserve mode
- new inscription code
- new message recall code
- new spell and prayer code
- massive cleanup of effects code
- new object allocation routines
- powerful (but simple) on line help
- robust savefile cheat preventers
- new official cheating options
- new blindness code
- new hallucination code
- optimized object description code
- new keypress input routines
- actual object discounts
- fractional (assymptotic) speed
- postponing updates/redraws
- run-time price determination
- better wizard commands
- the automatic player
- launchers of extra shots
- elemental ignore flags
- new ego-item types
- new player ghost creation
- no more sliding objects
- no more sliding monsters
- new object flags
- new chest trap code
- regularized the artifact code
- regularized the ego-item code
- new monster abilities
- new monster spell attacks
- some new store owners
- run-time skill computation
- player kills vs anscestor kills
- better room illumination code
- better group monster code
- table access through pointers
- more redefinable constants
- slightly new screen layout
- extreme code cleaning
- extreme optimizations
-
-
- === A Posting from the Original Author ===
-
- From: koeneke@ionet.net (Robert Alan Koeneke)
- Newsgroups: rec.games.roguelike.angband,rec.games.roguelike.moria
- Subject: Early history of Moria
- Date: Wed, 21 Feb 1996 04:20:51 GMT
-
- I had some email show up asking about the origin of Moria, and its
- relation to Rogue. So I thought I would just post some text on the
- early days of Moria.
-
- First of all, yes, I really am the Robert Koeneke who wrote the first
- Moria. I had a lot of mail accussing me of pulling their leg and
- such. I just recently connected to Internet (yes, I work for a
- company in the dark ages where Internet is concerned) and
- was real surprised to find Moria in the news groups... Angband was an
- even bigger surprise, since I have never seen it. I probably spoke to
- its originator though... I have given permission to lots of people
- through the years to enhance, modify, or whatever as long as they
- freely distributed the results. I have always been a proponent of
- sharing games, not selling them.
-
- Anyway...
-
- Around 1980 or 81 I was enrolled in engineering courses at the
- University of Oklahoma. The engineering lab ran on a PDP 1170 under
- an early version of UNIX. I was always good at computers, so it was
- natural for me to get to know the system administrators. They invited
- me one night to stay and play some games, an early startrek game, The
- Colossal Cave Adventure (later just 'Adventure'), and late one night,
- a new dungeon game called 'Rogue'.
-
- So yes, I was exposed to Rogue before Moria was even a gleam in my
- eye. In fact, Rogue was directly responsible for millions of hours of
- play time wasted on Moria and its descendents...
-
- Soon after playing Rogue (and man, was I HOOKED), I got a job in a
- different department as a student assistant in computers. I worked on
- one of the early VAX 11/780's running VMS, and no games were available
- for it at that time. The engineering lab got a real geek of an
- administrator who thought the only purpose of a computer was WORK!
- Imagine... Soooo, no more games, and no more rogue!
-
- This was intolerable! So I decided to write my own rogue game, Moria
- Beta 1.0. I had three languages available on my VMS system. Fortran
- IV, PASCAL V1.?, and BASIC. Since most of the game was string
- manipulation, I wrote the first attempt at Moria in VMS BASIC, and it
- looked a LOT like Rogue, at least what I could remember of it. Then I
- began getting ideas of how to improve it, how it should work
- differently, and I pretty much didn't touch it for about a year.
-
- Around 1983, two things happened that caused Moria to be born in its
- recognizable form. I was engaged to be married, and the only cure for
- THAT is to work so hard you can't think about it; and I was enrolled
- for fall to take an operating systems class in PASCAL.
-
- So, I investigated the new version of VMS PASCAL and found out it had
- a new feature. Variable length strings! Wow...
-
- That summer I finished Moria 1.0 in VMS PASCAL. I learned more about
- data structures, optimization, and just plain programming that summer
- then in all of my years in school. I soon drew a crowd of devoted
- Moria players... All at OU.
-
- I asked Jimmey Todd, a good friend of mine, to write a better
- character generator for the game, and so the skills and history were
- born. Jimmey helped out on many of the functions in the game as well.
- This would have been about Moria 2.0
-
- In the following two years, I listened a lot to my players and kept
- making enhancements to the game to fix problems, to challenge them,
- and to keep them going. If anyone managed to win, I immediately found
- out how, and 'enhanced' the game to make it harder. I once vowed it
- was 'unbeatable', and a week later a friend of mine beat it! His
- character, 'Iggy', was placed into the game as 'The Evil Iggy', and
- immortalized... And of course, I went in and plugged up the trick he
- used to win...
-
- Around 1985 I started sending out source to other universities. Just
- before a OU / Texas football clash, I was asked to send a copy to the
- Univeristy of Texas... I couldn't resist... I modified it so that
- the begger on the town level was 'An OU football fan' and they moved
- at maximum rate. They also multiplied at maximum rate... So the
- first step you took and woke one up, it crossed the floor increasing
- to hundreds of them and pounded you into oblivion... I soon received
- a call and provided instructions on how to 'de-enhance' the game!
-
- Around 1986 - 87 I released Moria 4.7, my last official release. I
- was working on a Moria 5.0 when I left OU to go to work for American
- Airlines (and yes, I still work there). Moria 5.0 was a complete
- rewrite, and contained many neat enhancements, features, you name it.
- It had water, streams, lakes, pools, with water monsters. It had
- 'mysterious orbs' which could be carried like torches for light but
- also gave off magical aura's (like protection from fire, or aggrivate
- monster...). It had new weapons and treasures... I left it with the
- student assistants at OU to be finished, but I guess it soon died on
- the vine. As far as I know, that source was lost...
-
- I gave permission to anyone who asked to work on the game. Several
- people asked if they could convert it to 'C', and I said fine as long
- as a complete credit history was maintained, and that it could NEVER
- be sold, only given. So I guess one or more of them succeeded in
- their efforts to rewrite it in 'C'.
-
- I have since received thousands of letters from all over the world
- from players telling about their exploits, and from administrators
- cursing the day I was born... I received mail from behind the iron
- curtain (while it was still standing) talking about the game on VAX's
- (which supposedly couldn't be there due to export laws). I used to
- have a map with pins for every letter I received, but I gave up on
- that!
-
- I am very happy to learn my creation keeps on going... I plan to
- download it and Angband and play them... Maybe something has been
- added that will surprise me! That would be nice... I never got to
- play Moria and be surprised...
-
- Robert Alan Koeneke
- koeneke@ionet.net
-
-
- === Previous Versions (outdated) ===
-
-
- VMS Moria Version 4.8
- Version 0.1 : 03/25/83
- Version 1.0 : 05/01/84
- Version 2.0 : 07/10/84
- Version 3.0 : 11/20/84
- Version 4.0 : 01/20/85
-
- Modules :
- V1.0 Dungeon Generator - RAK
- Character Generator - RAK & JWT
- Moria Module - RAK
- Miscellaneous - RAK & JWT
- V2.0 Town Level & Misc - RAK
- V3.0 Internal Help & Misc - RAK
- V4.0 Source Release Version - RAK
-
- Robert Alan Koeneke Jimmey Wayne Todd Jr.
- Student/University of Oklahoma Student/University of Oklahoma
-
-
-
-
-
- Umoria Version 5.2 (formerly UNIX Moria)
- Version 4.83 : 5/14/87
- Version 4.85 : 10/26/87
- Version 4.87 : 5/27/88
- Version 5.0 : 11/2/89
- Version 5.2 : 5/9/90
-
- James E. Wilson, U.C. Berkeley
- wilson@ernie.Berkeley.EDU
- ...!ucbvax!ucbernie!wilson
-
- Other contributors:
- D. G. Kneller - MSDOS Moria port
- Christopher J. Stuart - recall, options, inventory, and running code
- Curtis McCauley - Macintosh Moria port
- Stephen A. Jacobs - Atari ST Moria port
- William Setzer - object naming code
- David J. Grabiner - numerous bug reports, and consistency checking
- Dan Bernstein - UNIX hangup signal fix, many bug fixes
- and many others...
-
-
-
-
- Copyright (c) 1989 James E. Wilson, Robert A. Keoneke
- This software may be copied and distributed for educational, research, and
- not for profit purposes provided that this copyright and statement are
- included in all such copies.
-
- Umoria Version 5.2, patch level 1
-
- Angband Version 2.0 Alex Cutler, Andy Astrand, Sean Marsh, Geoff Hill,
- Charles Teague.
-
- Angband Version 2.4 : 05/09/93
-
- Angband Version 2.5 : 12/05/93 Charles Swiger
-
- Angband Version 2.6 : 09/04/94 Charles Swiger
-
- Angband Version 2.7 : 01/01/95 Ben Harrison
-
- Angband Version 2.8 : 01/01/97 Ben Harrison
-
-
-
- Copyright (c) 1997 Ben Harrison, James E. Wilson, Robert A. Koeneke
-
- This software may be copied and distributed for educational, research,
- and not for profit purposes provided that this copyright and statement
- are included in all such copies. Other copyrights may also apply.
-
-
-
-